﻿using Monti.MVVM;

namespace Peter.Logic.Plugins
{
   /// <summary>
   /// Represents a peter plugin.
   /// </summary>
   public class Plugin : ViewModelBase
   {
      private string m_Name;
      private string m_Author;
      private string m_Description;
      private string m_Version;
      private bool m_IsInstalled;

      /// <summary>
      /// Gets or Sets the name of the plugin.
      /// </summary>
      public string Name
      {
         get { return this.m_Name; }
         set
         {
            this.m_Name = value;
            this.RaisePropertyChanged ("Name");
         }
      }

      /// <summary>
      /// Gets the author of the plugin.
      /// </summary>
      public string Author
      {
         get { return this.m_Author; }
         set
         {
            this.m_Author = value;
            this.RaisePropertyChanged ("Author");
         }
      }

      /// <summary>
      /// Gets the description of the plugin.
      /// </summary>
      public string Description
      {
         get { return this.m_Description; }
         set
         {
            this.m_Description = value;
            this.RaisePropertyChanged ("Description");
         }
      }

      /// <summary>
      /// Gets the version of the plugin.
      /// </summary>
      public string Version
      {
         get { return this.m_Version; }
         set
         {
            this.m_Version = value;
            this.RaisePropertyChanged ("Version");
         }
      }

      /// <summary>
      /// Gets or Sets if the plugin is installed or not.
      /// </summary>
      public bool IsInstalled
      {
         get { return this.m_IsInstalled; }
         set
         {
            this.m_IsInstalled = value;
            this.RaisePropertyChanged ("IsInstalled");
         }
      }
   }
}
